<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>
<body>
  

<script>
  // 1. 需求：进行一次请求：获取结果后，自己处理10行代码，然后给结果拼接上111，进行请求，再次自己处理10行，拼接222，进行请求，自己处理
  // new Promise((resolve, reject) => {
  //   // 1. 第一次网络请求
  //   setTimeout(() => {
  //     resolve('one request data')
  //   },1000)
  // }).then(res => {
  //   // 1. 自己处理10行代码
  //   console.log(res, "第一次的10行代码")
  //   // 2. 第二次处理请求
  //   return new Promise((resolve) => {
  //     // 2. 拼接
  //     resolve(res + "111")
  //   }).then(res => {
  //     console.log(res, "第二次处理的10行代码")
  //     // 3. 第三次处理请求
  //     return new Promise((resolve) => {
  //       // 3. 拼接
  //       resolve(res + "222")
  //     }).then(res => {
  //       console.log(res, "第三次处理的10行代码")
  //     })
  //   })
  // })

  // 2. Promise简写 直接返回Promise.resolve()
  // new Promise((resolve, reject) => {
  //   // 1. 第一次网络请求
  //   setTimeout(() => {
  //     resolve('one request data')
  //   },1000)
  // }).then(res => {
  //   // 1. 自己处理10行代码
  //   console.log(res, "第一次的10行代码")
  //   // 2. 第二次处理请求 + 拼接
  //   return Promise.resolve(res + "111")
  // }).then(res => {
  //   console.log(res, "第二次处理的10行代码")
  //   // 3. 第三次处理请求 + 拼接
  //   return Promise.resolve(res + "222")
  // }).then(res => {
  //   console.log(res, "第三次处理的10行代码")
  // })

  // 3. 直接返回交给下层处理 省略Promise + resolve :
  // new Promise((resolve, reject) => {
  //   // 1. 第一次网络请求
  //   setTimeout(() => {
  //     resolve('one request data')
  //   },1000)
  // }).then(res => {
  //   // 1. 自己处理10行代码
  //   console.log(res, "第一次的10行代码")

  //   // 2. 第二次处理请求 + 拼接
  //   return res + "111"
    
  // }).then(res => {
  //   console.log(res, "第二次处理的10行代码")
  //   // 3. 第三次处理请求 + 拼接
  //   return res + "222"

  // }).then(res => {
  //   console.log(res, "第三次处理的10行代码")
  // })

  // 4. Promise简写 处理错误 Promise.reject
  new Promise((resolve, reject) => {
    // 1. 第一次网络请求
    setTimeout(() => {
      resolve('one request data')
    },1000)
  }).then(res => {
    // 1. 自己处理10行代码
    console.log(res, "第一次的10行代码")
    // 2. 第二次处理请求 + 拼接
    // return Promise.resolve(res + "111")

    // return Promise.reject("error")

    // 抛出异常
    throw "throw error"
  }).then(res => {
    console.log(res, "第二次处理的10行代码")
    // 3. 第三次处理请求 + 拼接
    return Promise.resolve(res + "222")
  }).then(res => {
    console.log(res, "第三次处理的10行代码")
  }).catch(error => {
    console.log(error)
  })
  
</script>


</body>
</html>